syntax = "proto3";

enum Gender {
  female = 0;
  male = 1;
};

enum ZodiacSign {
  aries = 0;
  taurus = 1;
  gemini = 2;
  cancer = 3;
  leo = 4;
  virgo = 5;
  libra = 6;
  scorpius = 7;
  sagittarius = 8;
  capricorn = 9;
  aquarius = 10;
  pisces = 11;
};

message Nestiness
{
  message SubA {
    message SubB {
      message SubC {
        uint32 d = 1;
        repeated uint32 e = 2;
      };
      SubC c = 1;
    };
    SubB b = 100;
  };
  SubA a = 1;
};

message Person {
  message MeasureUnit
  {
    string unit = 1;
    float coef = 2;
  };
  string uuid = 1;
  string name = 2;
  string surname = 3;
  Gender gender = 4;
  uint32 birthDate = 5;
  bytes photo = 6;
  string phoneNumber = 7;
  bool isOnline = 8;
  fixed32 visitTime = 9;
  uint32 age = 10;
  ZodiacSign zodiacSign = 11;
  repeated string songs = 12;
  repeated uint32 color = 13;
  string hometown = 14;
  repeated float location = 15;
  double pi = 16;
  double lotteryWin = 17;
  float someRatio = 18;
  float temperature = 19;
  sint64 randomBigNumber = 20;
  repeated MeasureUnit measureUnits = 21;
  Nestiness nestiness = 22;
};

enum OnlineStatus {
  offline = 0;
  online = 1;
};

message AltPerson {
  enum Gender {
    male = 0;
    female = 1;
  };
  repeated int32 location = 101 [packed=false];
  float pi = 103;
  bytes uuid = 300;
  bool newFieldBool = 299;
  string name = 2;
  Gender gender = 102;
  int32 zodiacSign = 130;
  int64 birthDate = 150;
  bytes age = 111;
  OnlineStatus isOnline = 1;
  double someRatio = 100;
  fixed64 visitTime = 15;
  sfixed64 randomBigNumber = 140;
  repeated int32 newFieldInt = 104;
  repeated float color = 14;
  uint64 lotteryWin = 202;
  bytes surname = 10;
  uint64 phoneNumber = 5;
  sint32 temperature = 41;
  string newFieldStr = 21;
  repeated string measureUnits_unit = 99;
  repeated float measureUnits_coef = 88;
  uint32 nestiness_a_b_c_d = 900;
  repeated uint32 nestiness_a_b_c_e = 901;
};

message StrPerson {
  message MeasureUnits
  {
    repeated string unit = 1;
    repeated string coef = 2;
  };
  message NestinessA
  {
    message SubBC {
      string d = 1;
      repeated string e = 2;
    };
    SubBC b_c = 1;
  };
  string uuid = 1;
  string name = 2;
  string surname = 3;
  string gender = 4;
  string birthDate = 5;
  string phoneNumber = 7;
  string isOnline = 8;
  string visitTime = 9;
  string age = 10;
  string zodiacSign = 11;
  repeated string songs = 12;
  repeated string color = 13;
  string hometown = 14;
  repeated string location = 15;
  string pi = 16;
  string lotteryWin = 17;
  string someRatio = 18;
  string temperature = 19;
  string randomBigNumber = 20;
  MeasureUnits measureUnits = 21;
  NestinessA nestiness_a = 22;
};
